var의 문제점
변수 선언에 사용되는 var에 문제점에 대해 설명드리겠습니다.
var 키워드에는 이러한 특징이 있습니다.
- 변수 선언의 중복 허용
- 함수 레벨 스코프
- 변수 호이스팅
변수 선언의 중복으로 의도치않게 같은 이름의 변수를 선언하여 재할당 되는 부작용이 생길 수 있습니다.
대부분 프로그래밍 언어의 변수는 모든 코드 블럭(if , for , while , try/catch)이 지역 스코프를 만듭니다.
이를 블록 레벨 스코프 라고합니다.
하지만 var 키워드로 선언된 변수는 함수의 코드블록만을 지역스코프로 인정합니다 이를 함수 레벨 스코프라고 합니다
이 특성때문에 안에있는 코드블럭내에서 의도치않는 값의 변경이 일어날 수 있습니다
var로 선언한 변수는 선언과 동시에 undefined로 초기화 되며 런타임때 스코프에 등록 되기때문에 실제 값이 할당 되지 않더라도 undefined를 갖고있다.
이때문에 의도치않은 값을 낼일이 있을 수 도있다.